package April.april27;

import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;

import java.sql.Connection;
import java.sql.SQLException;

/*
利用 导入的dbutils包中的QueryRunner接口 实现对数据库对增删改 insert update delect
调用QueryRunner类的方法 updata（Connection con,String sql,Object...param)
Object...param 可变参数，Object类型，sql语句会出现？占位符
数据库连接对象，自定义的工具类传递
 */
public class QueryRunnerDemo {
    private static Connection con = JdbcUtil.getConnection();

    public static void main(String[] args) throws SQLException {
        insert();
//        updata();
//        delete();
    }
    /*
   定义方法 使用QueryRunner 类的方法 delete将数据库中的数据删除
     */
    public static void delete() throws SQLException {
        QueryRunner qr = new QueryRunner();
        String sql = "DELETE FROM java1 WHERE sid=?";
        int row = qr.update(con,sql,1);
        if (row < 0) {
            System.out.println("删除失败，请重新删除");
        }
        DbUtils.close(con);
    }

    /*
    定义方法，使用QueryRunner 类的方法 updatate将数据库的数据修改
     */
    public static void updata() throws SQLException {
        QueryRunner qr = new QueryRunner();
        String sql = "UPDATE java1 SET sname=?,sprice=?, WHERE sid=?";
        Object[] params = {"花卉",100.08,"情人节玫瑰花",1};
        int row = qr.update(con,sql,params);
        System.out.println(row);
//        调用静态方法关流
        DbUtils.close(con);
    }
    /*
    定义方法，使用QueryRunner类的方法update向数据库中，添加数据
     */
    public static void insert() throws SQLException {
//        创建QueryRunner类的对象
        QueryRunner qr = new QueryRunner();
        String sql = "INSERT INTO java1(sname,sprice,sdesc) VALUES (?,?,?)";
//        将三个占位符的实际参数，写到数组中
        Object[] params = {"体育用品",289.32,"购买体育用品"};
//      调用  QueryRunner类的方法updata执行sql语句
        int row = qr.update(con,sql,params);
        System.out.println(row);
//        调用静态关闭方法
        DbUtils.close(con);
    }

}
